package cn.com.gridinfo.sooc.core.home.activity;

import android.content.Intent;
import android.os.Bundle;
import android.support.design.widget.TabLayout;
import android.support.v4.view.ViewPager;
import android.view.KeyEvent;
import android.view.View;
import android.widget.ImageView;

import com.jeremy.arad.Arad;
import com.jeremy.arad.utils.AnimUtil;
import com.jeremy.arad.utils.Log;
import com.jeremy.arad.utils.MessageUtils;

import butterknife.ButterKnife;
import butterknife.InjectView;
import butterknife.OnClick;
import cn.com.gridinfo.ads.AppConnect;
import cn.com.gridinfo.sooc.R;
import cn.com.gridinfo.sooc.SoocApplication;
import cn.com.gridinfo.sooc.base.BaseSoocActivity;
import cn.com.gridinfo.sooc.common.LocalMark;
import cn.com.gridinfo.sooc.core.course.classes.activity.CourseKindsActivity;
import cn.com.gridinfo.sooc.core.course.classes.activity.CourseSearchActivity;
import cn.com.gridinfo.sooc.core.home.adapter.HomePagerAdapter;
import cn.com.gridinfo.sooc.utils.VersionUpdate;

/**
 * 主页
 * Created by jieli on 15/8/9.
 */
public class HomeActivity extends BaseSoocActivity {

    @InjectView(R.id.viewPager)
    ViewPager viewPager;//page页面
    @InjectView(R.id.tabLayout)
    TabLayout tabLayout;//标签切换选择


    //标题
    private String title;

    // 返回键两次点击的时间间隔
    private long exitTime = 0;


    //实例化主 activity
    public static HomeActivity instance = null;

    //是否有登陆过
    boolean isAutoLogin;

    int unSelectedTab = -1;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_home);
        ButterKnife.inject(this);
        instance = this;
        //登录成功
        isAutoLogin = Arad.preferences.getBoolean(LocalMark.IS_AUTO_LOGIN.getName(), false);
        //检查更新
        VersionUpdate versionUpdate = new VersionUpdate(this, true);
        versionUpdate.check();

        //配置 home 页面
        HomePagerAdapter pagerAdapter = new HomePagerAdapter(getSupportFragmentManager(), this);
        viewPager.setAdapter(pagerAdapter);
        tabLayout.setupWithViewPager(viewPager);
        // tab 标签设置
        for (int i = 0; i < tabLayout.getTabCount(); i++) {
            TabLayout.Tab tab = tabLayout.getTabAt(i);
            if (tab != null) {
                tab.setCustomView(pagerAdapter.getTabView(i));

            }
        }
        viewPager.setOffscreenPageLimit(2);

        //标签监听
        tabLayout.setOnTabSelectedListener(new TabLayout.OnTabSelectedListener() {
            @Override
            public void onTabSelected(TabLayout.Tab tab) {
                Log.d("onTabSelected====tab.getPosition:>>>>>" + tab.getPosition() + ">>>tab.getTag:>>>>" + tab.getTag());
//                if (tab.getPosition() == 0) {
                    //选中校内标签,判断是否登录,未登录显示登录界面
//                    if (!Arad.preferences.getBoolean(LocalMark.IS_AUTO_LOGIN.getName(), false)) {
//                        IntentUtil.intentPushUp(HomeActivity.this, LoginActivity.class, 10);
//                        return;
//
//                    }

                    viewPager.setCurrentItem(tab.getPosition(), false);


//                }
//                if (tab.getPosition() == 1) {
//                    viewPager.setCurrentItem(1, false);
//                }
//                if (tab.getPosition() == 2) {
//                    viewPager.setCurrentItem(2, false);
//                }
//                if (tab.getPosition() == 3) {
//                    viewPager.setCurrentItem(3, false);
//                }

                //设置头部标题内容
                setToolbarTitle(tab.getPosition());
            }

            @Override
            public void onTabUnselected(TabLayout.Tab tab) {
                unSelectedTab = tab.getPosition();
                Log.d("onTabUnselected====tab.getPosition:>>>>>" + tab.getPosition() + ">>>tab.getTag:>>>>" + tab.getTag());
            }

            @Override
            public void onTabReselected(TabLayout.Tab tab) {
                Log.d("onTabReselected====tab.getPosition:>>>>>" + tab.getPosition() + ">>>tab.getTag:>>>>" + tab.getTag());

            }
        });

        //设置默认展示内容 校内或者瘦课网
        setInitDisplayContent();

    }


    //页面切换时头部标题更换
    void setToolbarTitle(int position) {
        switch (position) {
            case 0:
                initxnToolBar();
                getActionBarToolbar().setVisibility(View.VISIBLE);
                break;
//            case 1:
//                initToolBar("公开课");
//                getActionBarToolbar().setVisibility(View.VISIBLE);
//                break;
            case 1:
                initToolBar("发现");
                getActionBarToolbar().setVisibility(View.VISIBLE);
                break;
            case 2:
                getActionBarToolbar().setVisibility(View.GONE);
                break;
        }
    }

    /**
     * 初始化校内头部控件
     */
    private void initxnToolBar() {
        getmTitle().setText("首页");
        getmRightButton().setVisibility(View.VISIBLE);
        getToolbarRightimg().setVisibility(View.VISIBLE);
        getToolbarLine().setVisibility(View.GONE);
        getmLeftButton().setVisibility(View.GONE);
        getToolbarRighttv().setVisibility(View.GONE);
    }

    /**
     * 初始化头部控件
     */
    private void initToolBar(String title) {
        getmTitle().setText(title);
        getmRightButton().setVisibility(View.GONE);
        getToolbarRightimg().setVisibility(View.GONE);
        getToolbarLine().setVisibility(View.GONE);
        getmLeftButton().setVisibility(View.GONE);
        getToolbarRighttv().setVisibility(View.GONE);
    }

    //    //设置标题
    @Override
    public String setupToolBarTitle() {
        return title;
    }

    //设置左边按钮
    @Override
    public boolean setupToolBarLeftButton(ImageView leftButton) {

        return  false;
    }
    @Override
    public boolean setupToolBarRightButton(ImageView rightButton) {
        if(tabLayout.getSelectedTabPosition()==0){
            return true;
        }
        return false;
    }
    public boolean setToolbarRightimg(ImageView toolbarRightimg) {
        if(tabLayout.getSelectedTabPosition()==0){
            return true;
        }
        return false;
    }
    public boolean setToolbarLine(View toolbarLine) {
        return false;
    }
//
//点击课程分类
    @OnClick(R.id.toolbar_rightbtn)
    void couseKindsClick() {
        Intent i = new Intent(this, CourseKindsActivity.class);
        startActivity(i);
        AnimUtil.intentSlidIn(this);
    }

    //点击课程搜索
    @OnClick(R.id.toolbar_rightimg)
    void couseSearchClick() {
        Intent i = new Intent(this, CourseSearchActivity.class);
        startActivity(i);
        AnimUtil.intentSlidIn(this);
    }


    @Override
    public boolean onKeyDown(int keyCode, KeyEvent event) {
        if (keyCode == KeyEvent.KEYCODE_BACK
                && event.getAction() == KeyEvent.ACTION_DOWN) {
            if ((System.currentTimeMillis() - exitTime) > 2000) {
                MessageUtils.showLongToast(this, "再按一次退出程序");
                exitTime = System.currentTimeMillis();
            } else {
                // 退出应用
                finish();
            }
            return true;
        }
        return super.onKeyDown(keyCode, event);
    }

    @Override
    protected void onResume() {
        super.onResume();
    }

    @Override
    public void onDestroy() {
        Log.i("home销毁");
        super.onDestroy();

    }




    /**
     * 设置默认展示校内还是瘦课网
     * 根据自动登录成功与否的标示来判断 true 校内  false 瘦课网
     */
    private void setInitDisplayContent() {

        if (isAutoLogin) {

            //显示校内页面
            TabLayout.Tab tab = tabLayout.getTabAt(0);
            tab.getCustomView().setSelected(true);
            viewPager.setCurrentItem(0,false);

        }
        //登录不成功
//        else {
//            //显示瘦课网页面
//            TabLayout.Tab tab = tabLayout.getTabAt(1);
//            tab.getCustomView().setSelected(true);
//            viewPager.setCurrentItem(1,false);
//
//        }

    }


//    @Override
//    public void onActivityResult(int requestCode, int resultCode, Intent data) {
//        super.onActivityResult(requestCode, resultCode, data);
//        if (resultCode == Activity.RESULT_OK) {
//            //处理从校内进入登录页面返回逻辑
//            if (requestCode == 10) {
//                //登录界面回调,登录成功后:如果是从校内进入登录的则显示校内,不成功显示瘦课网
//                //关闭登录页面,未进行登录的话,如果是从校内进入返回时,显示瘦课网;
//                //其他地方进入登录,从哪进回哪去
//                //获取校内标签
//                TabLayout.Tab tabXn = tabLayout.getTabAt(0);
//                //获取瘦课网标签
//                TabLayout.Tab tabOpenClass = tabLayout.getTabAt(1);
//                //当前选中校内标签
//                if (tabLayout.getSelectedTabPosition() == 0) {
//                    //登录成功 刷新校内页面
//                    if (data.getStringExtra("loginFlag").equals("isLogin")) {
//                        tabXn.select();
//                        viewPager.setCurrentItem(0,false);
//                        //设置头部标题内容
//                        setToolbarTitle(0);
//                        //检查更新
//                        VersionUpdate versionUpdate = new VersionUpdate(this, true);
//                        versionUpdate.check();
//                    } else {
//                        //未登录 选中瘦课网标签,显示瘦课网页面,从哪个界面进入校内,关闭未登录页面进入哪个界面
//                        Log.d("unSelectedTab:"+unSelectedTab);
//                        TabLayout.Tab tab = tabLayout.getTabAt(unSelectedTab);
//                        tab.select();
//                    }
//
//                }
//
//            }
//        }
//
//
//    }
}